package com.treepoke.util.base;

import com.treepoke.util.logging.CRCCLogger;
import com.treepoke.util.properties.TPConstant;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Interfaz que define las firmas de los metodos básicos para los
 * DAOs(findByFilter)
 */
public class TPBaseDAO {
    
    private CRCCLogger logger = CRCCLogger.getLogger(TPConstant.getNOMBRE_APLICACION());

    /**
     * Conexión de base de datos a usar.
     */
    private Connection connection = null;

    public void setConnection(Connection conn) {
        this.connection = conn;
    }

    public Connection getConnection() {
        return this.connection;
    }

    /**
     * Metodo que permite cerrar los recursos que se obtienen de la base de
     * datos
     *
     * @param rs Objeto resulset de la base de datos
     * @param ps Objeto statement de la base de datos
     * @throws DAOException (Si ocurre algún error al intentar cerrar los
     * recursos)
     */
    public void closeResources(ResultSet rs, Statement ps) {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException sqle) {                        
            logger.errorMessage("Error cerrando rs: " + sqle.getMessage(), sqle);
        }

        try {
            if (ps != null) {
                ps.close();
            }
        } catch (SQLException sqle) {
            logger.errorMessage("Error cerrando statement: " + sqle.getMessage(), sqle);
        }

    }
}
